<?php declare(strict_types=1);

namespace cdetoolclient;

date_default_timezone_set('PRC'); 
set_time_limit(300);
error_reporting(E_ALL);
/**
** //目标 
** //对目录下的文件批量重新命名
**
** 使用方法    
	// 命令行 php ； 
	// php seqfilename.php 目录 prefix  increse 
	   php seqfilename.php 目录 32  001 

*/




if(count($argv)==4){
		if(empty($argv[1])||!is_dir($argv[1])){
			exit('1001: '.$argv[1].' is not a dir');
		}
		 if($argv[3]==''){
			exit('1002: invalid increse'); 
		 }
		
}else {	
	exit('1003: only support 4 arguments :selffile.php dir prefix increse');
		
		
}

list($fileslist,$newdir)=reNamefileByDir($argv[1],$argv[2],$argv[3]);
echo "\r\n";
echo "1、重命名文件的目录：\t".$newdir."\r\n";
echo "2、重命名文件文件数：\t".count($fileslist)."\r\n";
echo sprintf("3、重命名的命令参数：\tphp \t%s\t%s\t%s\t%s",$argv[0],$argv[1],$argv[2],$argv[3])."\r\n";
// ======================================================================================================

exit('');

// 不支持子目录
function reNamefileByDir($dir,$nameprefix='',$nameincrese=''){
	
	$dir=rtrim($dir,'/'); // 	
	$origindir=$dir;//
	$newdir=$dir.'/_dorename_'.time();	
	mkdir($newdir,0777); 
	$files=array();
	if (is_dir($dir)) {
		if ($dh = opendir($dir)) {
			$i = 0;
			while (($file = readdir($dh)) !== false) {	

				if ($file != "." && $file != ".."&&!is_dir($dir.'/'.$file)) {
					$files[$i]["name"] = $file;//获取文件名称
					//$files[$i]["size"] = round((filesize($file)/1024),2);//获取文件大小
					//$files[$i]["time"] = date("Y-m-d H:i:s",filemtime($file));//获取文件最近修改日期
					$files[$i]['ext']=pathinfo($file, PATHINFO_EXTENSION);
					$i++;
				}
			}
		}
		closedir($dh);
		foreach($files as $k=>$v){
			//$size[$k] = $v['size'];
			//$time[$k] = $v['time'];
			$name[$k] = $v['name'];
		}
		
		//array_multisort($time,SORT_DESC,SORT_STRING, $files);//按时间排序
		//array_multisort($name,SORT_DESC,SORT_STRING, $files);//按名字排序
		$files&&array_multisort($name,SORT_ASC,SORT_STRING, $files);//按名字排序
		//array_multisort($size,SORT_DESC,SORT_NUMERIC, $files);//按大小排序
		//print_r($files);
	}
	$oldfiles= $files;
	$newfiles=array();
	$tmpname='';	
	$i=$nameincrese;//基数	
	$dir=rtrim($dir,'/');
	$leni=strlen($nameincrese);

	foreach ($oldfiles as $k=>$v){		
		$tmpname=$nameprefix.str_pad(''.$i,$leni,'0',STR_PAD_LEFT).'.'.$v['ext'];
		$newfiles[$k]=$v;
		$newfiles[$k]['newname']=$tmpname;		
		$i++;
		//error_log("\r\n".$dir.'/'.$v['name'].' -- '.$dir.'/'.$tmpname,3,"aaaa.log");
		
		//rename($dir.'/'.$v['name'],$newdir.'/'.$tmpname); //移动的方式
		copy($dir.'/'.$v['name'],$newdir.'/'.$tmpname); //拷贝到新目录	
	}
	return array($newfiles,$newdir);
	
}

